#include<stdio.h>
struct student
{
    char name[5];
	int score;
};
int main()
{
	struct student st[30];
	int sum,ave;
	int A,B,C,D,E,n,i,j;
	printf("学生成绩统计\n");

	A=0,B=0,C=0,D=0,E=0;
	do
	{
		printf("班级人数(n<=30) n=");
		scanf("%d",&n);
		if(n<1||n>30)printf("输入错误\n");
	}while(n<1||n>30);

	sum=0;
	for(i=0;i<n;i++)
	{
		printf("name%d：",i+1);
		scanf("%s",st[i].name);
		do
		{
			printf("score%d：",i+1);
			scanf ("%d",&st[i].score);
			if(st[i].score<0||st[i].score>100)printf("输入错误\n");
		}while(st[i].score<0||st[i].score>100);
		if(st[i].score<60)E++;
		if(st[i].score>=60&&st[i].score<=69)D++;
		if(st[i].score>=70&&st[i].score<=79)C++;
		if(st[i].score>=80&&st[i].score<=89)B++;
		if(st[i].score>=90)A++;
		sum+=st[i].score;
	}
	ave=sum/n;
	printf("sum=%d\n",sum);
	printf("ave=%d\n",ave);

	printf("\n不及格人数为：%d\n",E);
	printf("不及格名单为:\n");
	for(i=0;i<n;i++)
	{
		if(st[i].score<60)printf("%-5s%d\n",&st[i].name,st[i].score);
	}

	for(i=0,j=0;i<n;i++)
	{
		if(st[i].score>=ave)j++;
	}
	printf("\n平均分之上的学生人数为：%d\n",j);
	printf("平均分之上的学生名单为：\n");
	for(i=0;i<n;i++)
	{
		if(st[i].score>=ave)printf("%-5s%d\n",&st[i].name,st[i].score);
	}

	printf("\n分数段      学生人数     图形\n");
	printf("E:<60       %d            ",E);
	for(i=0;i<E;i++)
	{
		printf("*");
	}
	printf("\n");
	printf("D:60-69     %d            ",D);
	for(i=0;i<D;i++)printf("*");
	printf("\n");
	printf("C:70-79     %d            ",C);
	for(i=0;i<C;i++)printf("*");
	printf("\n");
	printf("B:80-89     %d            ",B);
	for(i=0;i<B;i++)printf("*");
	printf("\n");
	printf("A:>=90      %d            ",A);
	for(i=0;i<A;i++)printf("*");
	printf("\n");
	return 0;
}